#pragma once

#include "XVulkan.h"

class Texture2D : public XTexture
{
  public:
    Texture2D(VkImageAspectFlags imageAspect = VK_IMAGE_ASPECT_COLOR_BIT);
    ~Texture2D();

    void SetImage(const char *path);
    void SetFilter(VkFilter min_filter, VkFilter mag_filter);
    void setWrapMode(VkSamplerAddressMode wrap_u, VkSamplerAddressMode wrap_v, VkSamplerAddressMode wrap_w);
};

class TextureCube : public XTexture
{
  public:
    TextureCube();
    ~TextureCube();

    void Init(const char *path);
    void SetFilter(VkFilter min_filter, VkFilter mag_filter);
    void setWrapMode(VkSamplerAddressMode wrap_u, VkSamplerAddressMode wrap_v, VkSamplerAddressMode wrap_w);
};